//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ICameraSceneNode.h"
#include "FpsBatchSceneNode.h"
#include "IBatchList.h"
#include "CBatchListCompileData.h"

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

using namespace irr;
using namespace scene;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

struct SSetSegmentLayerCompileCallback
	: IBatchCompileCallback
{
	ISceneManager* SceneManager;
	IBatchCompileCallback* OtherCallback;

	SSetSegmentLayerCompileCallback(ISceneManager* sceneManager,
									IBatchCompileCallback* other)
		: SceneManager(sceneManager)
		, OtherCallback(other)
	{
	}

	virtual void operator () (IBatchList* batchList,
							  u32 batch,
							  u32 segment,
							  const SCompileInfo& data)
	{
		int layer;
		SceneManager->getCurrentRenderedNode(NULL, &layer);
		static_cast<IBatchMesh*>(batchList)->setRenderLayer(
			batch, segment, static_cast<s16>(layer)
		);
		if (OtherCallback)
		{
			(*OtherCallback)(batchList, batch, segment, data);
		}
	}
};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

using namespace irr;
using namespace scene;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

CFpsBatchSceneNode::CFpsBatchSceneNode(int id, IBatchMesh* batchMesh) :
	CBatchSceneNode<SFpsSegment>(id, batchMesh)
{
	RegisterSolidBatchesOnce = false;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
